home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer 2.0 / Internet Surfer 2.0 (Wayzata Technology) (1996).iso / pc / text / mac / faqs.524 < prev    next >
Text File  |  1996-02-12  |  28KB  |  841 lines

  1. Frequently Asked Questions (FAQS);faqs.524
  2.  
  3.  
  4. #
  5.    set in [open [concat "|/usr/bin/grep $site $files"] r]
  6.  
  7.    while {[gets $in line]>-1} {
  8.       puts stderr $line
  9.    }
  10.    catch {close $in}
  11. }
  12.  
  13. One thing:  the matching strings are _not_ returned in directory order.
  14.  
  15. But what if I want to check the return code AND use the output of
  16. the command?  kennykb@dssv01.crd.ge.com (Kevin B. Kenny) writes:
  17.  
  18. if [catch {exec ls} data] {
  19.         # The exec got an error, and $errorCode has its termination status
  20. } else {
  21.         # The exec succeeded
  22. }
  23. # In any case, `data' contains all the output from the child process.
  24.  
  25. Note that Karl Lehenbauer adds that errorCode will be a list containing
  26. three elements, the string "CHILDSTATUS", the process ID of the child,
  27. and the exit status of the child.
  28.  
  29. Subject: -Q8e-    merge extended Tcl into other programs such as wish or expect?
  30.  
  31. A8e. The latest version of extended TCL, tclX 6.2B, has been enhanced to
  32. make it easier to incorporate into applications.
  33.  
  34. Subject: -Q8f-    delete a procedure from within a script?
  35.  
  36. A8f. rename procedureName ""
  37.  
  38. Subject: -Q8g- get parray to recognize an array variable I have created
  39.     via upvar?
  40.  
  41. A8g. Right now (June, 1992) upvar doesn't allow you to attach to an
  42. individual element of an array.  This is considered a bug by
  43. Mr. Ousterhout and has been place on a bug list.
  44.  
  45. Subject: -Q8h- get more than 7 digits of double precision ?
  46.  
  47. A8h. Modify the tclExpr.c module to use %lf instead of %g.
  48.  
  49. Subject: -Q8i- grab the command line whenever a non-built-in call is made?
  50.  
  51. A8i. The procedure "unknown" is called automatically with arguments
  52. containing the command and its arguments for any command that couldn't be
  53. found.  In fact, Tcl and Extended Tcl use this feature to provide demand
  54. loaded commands, and even entire libraries.
  55.  
  56. So by modifying the unknown procedure you can provide your own extended
  57. functionality, or even remove the demand loading capability if you so
  58. desire.
  59.  
  60. ------------------------------
  61. Subject: -9-  How, in Tk, can I XXX:
  62.  
  63. Subject: -Q9a- get my wish application to execute - I just get a
  64.         wish prompt!  Or I just get error msgs about permission
  65.         denied, not found, etc.
  66.  
  67. A9a. Most systems require a full pathname to the interpreter.  So you cannot
  68. start a wish script out as
  69. #! wish -f
  70.  
  71. Likewise, many Unix systems have a maximum length of characters that you can
  72. put on a #! line.  If you exceed this, you do not get the behaviour you
  73. expect.  So do not try to put something like:
  74.  
  75. #! /projects/somethingbig/bin/sun4/wish -f
  76.  
  77. followed by your wish code.  Keep the lines short - under 30 characters is
  78. recommended.
  79.  
  80. Subject: -Q9b- get an application to also use libXt?
  81.  
  82. A9b. Tk2.1 and Xt have different X connections, and XtAppNextEvent will
  83. block is there is nothing coming from the X connection.  One way
  84. of fixing this is get the connection number of Tk using
  85.  
  86.    ConnectionNumber(Tk_Display(tk_window));
  87.  
  88. and using XtAddInput to register this with the Xt event handler.  The
  89. callback procedure for XtAddInput wrapper procedure that runs
  90. Tk_OneEvent(1).  There might be problems with Tk file sources which
  91. aren't registered with Xt.
  92.  
  93. Thanks to joe@astro.as.utexas.edu (Joe Wang) for this information.
  94.  
  95. Subject: -Q9c- ,using a machine with less than 8 bit color, run?
  96.  
  97. A9c. Tk doesn't behave very well with less than 8-bit color screens.  To
  98. try to use it, find all the places in the Tk/wish source where
  99. DefaultDepthOfScreen is invoked to test the number of bit-planes.  Change all
  100. of these to pretend there is just 1 bit-plane, or call a procedure which
  101. monitors a Tcl variable so that it is configurable, and you should be okay.
  102.  
  103. Another alternative is to see if the server you are using has alternative
  104. visual / color models, such as static visual, etc.  One of the alternatives
  105. may allow Tk to work better.
  106.  
  107. Thanks to "Nathaniel Borenstein" <nsb@thumper.bellcore.com> for this info!
  108.  
  109. Subject: -Q9d- set X11 resources for a wish application in an app-defaults file?
  110.  
  111. A9d. Read the documentation for the option command.
  112. Then you should consider something like the following - assume the program
  113. name is xwf.
  114.  
  115. The following are two general purpose functions to put into a library:
  116.  
  117. # envVal envValName
  118. #   Looks up the envValName environment variable and returns its
  119. #   value, or {} if it does not exists
  120. proc envVal {envValName} {
  121.   global env
  122.   if [info exists env($envValName)] {return $env($envValName)} {return {}}
  123. }
  124.  
  125. # loadAppDefaults classNameList ?priority?
  126. #   Searches for the app-default files corresponding to classNames in
  127. #   the order specified by X Toolkit Intrinsics, and loads them with
  128. #   the priority specified (default: startupFile).
  129. proc loadAppDefaults {classNameList {priority startupFile}} {
  130.   set filepath "[split [envVal XUSERFILESEARCHPATH] :] \
  131.         [envVal XAPPLRESDIR] \
  132.         [split [envVal XFILESEARCHPATH] :] \
  133.         /usr/lib/X11"
  134.   foreach i $classNameList {
  135.     foreach j $filepath {
  136.       if {[file exists $j/$i]} {
  137.     option readfile $j/$i $priority; break
  138.       }
  139.     }
  140.   }
  141. }
  142.  
  143. # Now, here is what you would put into xwf:
  144.  
  145. option add Tk.BoldFont "*-lucida sans-Bold-R-Normal-*-100-*" widgetDefault
  146. loadAppDefaults {xwf XWF} userDefault
  147.  
  148. This sets a program default, then load any defaults specified in the user's
  149. default resources and finally any site or general app-defaults resource.
  150. Of course, you would want to add some xwf command line handling to allow
  151. the user to override things at execution time.
  152.  
  153. Subject: -Q9e- change the X11 cursor?
  154.  
  155. A9e. Here is a tip from mgc@cray.com (M. G. Christenson).
  156.  
  157. Look at /usr/include/X11/cursorfont.h for a list of available cursors.
  158. You can use the names in there by removing the 'XC_'.
  159.  
  160. Here's a little proc I use to make my entire application go 'busy'
  161. while it's doing something. Just call it with the commands you want to
  162. execute, and the watch cursor will be displayed for the time it takes
  163. the commands to complete.  Note that any new windows will have their
  164. normal cursor.
  165.  
  166. proc busy {cmds} {
  167.     global errorInfo
  168.  
  169.     set busy {.app .root}
  170.     set list [winfo children .]
  171.     while {$list != ""} {
  172.     set next {}
  173.     foreach w $list {
  174.         set class [winfo class $w]
  175.         set cursor [lindex [$w config -cursor] 4]
  176.         if {[winfo toplevel $w] == $w || $cursor != ""} {
  177.         lappend busy [list $w $cursor]
  178.         }
  179.         set next [concat $next [winfo children $w]]
  180.     }
  181.     set list $next
  182.     }
  183.  
  184.     foreach w $busy {
  185.     catch {[lindex $w 0] config -cursor watch}
  186.     }
  187.  
  188.     update idletasks
  189.  
  190.     set error [catch {uplevel eval [list $cmds]} result]
  191.     set ei $errorInfo
  192.  
  193.     foreach w $busy {
  194.     catch {[lindex $w 0] config -cursor [lindex $w 1]}
  195.     }
  196.  
  197.     if $error {
  198.     error $result $ei
  199.     } else {
  200.     return $result
  201.     }
  202. }
  203.  
  204. Subject: -Q9f- raise or lower a window?
  205.  
  206. A9f. This is on the (semi-infinite) list of things to be done in the future.
  207. If you have the time, please go ahead and add it and submit the code and all
  208. will be grateful.
  209.  
  210. Subject: -Q9g- re-map a withdrawn window id?
  211.  
  212. A9g. Use wm deiconify <windowid>.
  213.  
  214. Subject: -Q9h- specify bitmap patterns on the command line instead of as
  215. a file name?
  216.  
  217. A9h. You can not, at least as of June, 1992.
  218.  
  219. Subject: -Q9i- change the default class bindings?
  220.  
  221. A9i. All default class bindings for Tk widgets are initialized in
  222. $tk_library/tk.tcl.  Use this file as a guide to implement new
  223. bindings.  For instance, the following code duplicates Button 1's
  224. drag-select facility in Button 3 for all listboxes:
  225.  
  226. bind Listbox <3> {%W select from [%W nearest %y]}
  227. bind Listbox <B3-Motion> {%W select to [%W nearest %y]}
  228.  
  229. Subject: -Q9j- delete a binding?
  230.  
  231. A9j. Give an empty-string command to the "bind" invocation.  For
  232. example, to disable the Delete key in all entry fields:
  233.  
  234.     bind Entry <Delete> {}
  235.  
  236. Subject: -Q9k- change a binding while it is being executed?
  237.  
  238. A9k. As of June, 1992, this was not a safe thing to do in Tk.  It was
  239. put on the bug list by John Ousterhout to be fixed in a future version.
  240.  
  241. The solution for now is not to change the bindings, but to change
  242. something in the code they execute.  For example, keep a state variable
  243. that indicates which binding you'd like, but always have the binding
  244. call a given procedure.  Then that procedure checks the variable and
  245. executes one piece of code or another.  Or, you could just make the
  246. binding's command "eval $cmd" and then change the variable "cmd"
  247. depending on your application's state.
  248.  
  249. Subject: -Q9l- bind the arrow key on my Sun keyboard?
  250.  
  251. A9l.  You have to call it <Left> rather than <R10>.  Under X11, keys are
  252. referred to by their keysym.  One can use either xmodmap -pk or the xev
  253. program to determine what the keysym a particular key on a keyboard is
  254. currently generating.
  255.  
  256. If the keysym that is being used is not known by Tk, you may have to edit
  257. it's ks_names.h file.  There is a note in this file that indicates that
  258. one should not edit it - but this is where the keysym must be for it to
  259. be recognized.
  260.  
  261. Thanks to Wayne Christopher <faustus@ygdrasil.CS.Berkeley.EDU> for this
  262. note.
  263.  
  264. Subject: -Q9m- resize a listbox?
  265.  
  266. A9m. Use wm min/maxsize - in a uniform manner.  Here is a resizable listbox:
  267.  
  268.         #!/usr/local/bin/wish -f
  269.         wm minsize . 20 20
  270.         wm maxsize . 1152 900
  271.         pack append . [listbox .l -borderwidth 2 -relief raised] {expand fill}
  272.  
  273. Doing the same with the text widget brings its resizing under control too.
  274.  
  275. Thanks to "John C Ellson" <ellson@ontap.att.com).
  276.  
  277. Subject: -Q9n- select two items that are not adjacent in the listbox at
  278.         one time?
  279.  
  280. A9n. You can't.  Build your own listbox using boxes and text on a canvas.
  281. Then you will be able to select non-contiguous entries.
  282.  
  283. Subject: -Q9o- select items in more than one tk listbox at a time?
  284.  
  285. A9o. The default for tk's listbox widget exports its selection as the
  286. X selection.  There can only be one of these at a time.
  287.  
  288. To turn of this behavior in tk, use the -exportselection false when
  289. you create the listbox.  Or, use the
  290.  
  291. option add *Listbox.exportselection false
  292.  
  293. command in the beginning of your script.
  294.  
  295. Thanks to David Herron <david@twg.com> for this tip.
  296.  
  297. Subject: -Q9p- fill a canvas which is bounded by lines as opposed to a
  298. shape like a polygon, oval, etc.?
  299.  
  300. A9p. No, you have to at least use a polygon if you want to fill an area
  301. bounded by some lines.
  302.  
  303. Subject: -Q9q- create a scrollable window of buttons?
  304.  
  305. A9q.  There are at least two ways to do this.  First, there is a hypertext
  306. widget that one can get from the Barkley User Contributed Code Archive which
  307. provides such a facility.  And here is some sample code from
  308. "Michael Moore" <mdm@stegosaur.cis.ohio-state.edu> which shows a way to
  309. do this using just Tk.
  310.  
  311. #! /bin/wish -f
  312. #
  313. # This demonstrates how to create a scrollable canvas with mutliple
  314. # buttons.
  315. #
  316. # Author : Michael Moore
  317. # Date   : November 17, 1992
  318. #
  319.  
  320. #
  321. # This procedure obtains all the items with the tag "active"
  322. # and prints out their ids.
  323.  
  324. proc multi_action {} {
  325.     set list [.frame.canvas find withtag "active"]
  326.     puts stdout "Active Item Ids : "
  327.     foreach item $list {
  328.     puts stdout $item
  329.     }
  330. }
  331.  
  332. #
  333. # This simulates the toggling of a command button...
  334. # Note that it only works on a color display as is right now
  335. # but the principle is the same for b&w screens.
  336. #
  337. proc multi_activate {num id} {
  338.  
  339.     set tags [.frame.canvas gettags $id]
  340.     if {[lsearch $tags "active"] != -1} {
  341.     .frame.canvas dtag $id "active"
  342.     .frame.canvas.button$num configure \
  343.         -background "#060" \
  344.         -activebackground "#080"
  345.     } else {
  346.     .frame.canvas addtag "active" withtag $id
  347.     .frame.canvas.button$num configure \
  348.         -background "#600" \
  349.         -activebackground "#800"
  350.     }
  351. }
  352.  
  353. proc setup {} {
  354.      frame .frame
  355.  
  356.      scrollbar .frame.scroll \
  357.          -command ".frame.canvas yview" \
  358.          -relief raised
  359.  
  360.      canvas .frame.canvas \
  361.          -yscroll ".frame.scroll set" \
  362.          -scrollregion {0 0 0 650} \
  363.          -relief raised \
  364.      -confine false \
  365.      -scrollincrement 25
  366.  
  367.      pack append .frame \
  368.          .frame.scroll    {left frame center filly} \
  369.          .frame.canvas    {left frame center fillx filly}
  370.  
  371.      pack append .\
  372.          .frame   {left frame center fillx filly}
  373.  
  374.      button .frame.canvas.button$i  \
  375.          -relief raised \
  376.          -text "Action" \
  377.      -command "multi_action"
  378.      .frame.canvas create window 1 25 \
  379.      -anchor w \
  380.          -window .frame.canvas.action
  381.      for {set i 2} {$i < 26} {incr i} {
  382.      button .frame.canvas.button$i  \
  383.         -relief raised \
  384.         -background "#060" \
  385.         -foreground wheat \
  386.         -activebackground "#080" \
  387.         -activeforeground wheat \
  388.         -text "Button $i"
  389.      set id [.frame.canvas create window 1 [expr $i*25] \
  390.         -anchor w \
  391.         -window .frame.canvas.button$i]
  392.      .frame.canvas.button$i configure \
  393.         -command "multi_activate $i $id"
  394.     }
  395. }
  396.  
  397. setup
  398. --
  399. Larry W. Virden                 UUCP: osu-cis!chemabs!lvirden
  400. Same Mbox: BITNET: lvirden@cas  INET: lvirden@cas.org
  401. Personal: 674 Falls Place,   Reynoldsburg, OH 43068-1614
  402. --
  403. Larry W. Virden                 UUCP: osu-cis!chemabs!lvirden
  404. Same Mbox: BITNET: lvirden@cas  INET: lvirden@cas.org
  405. Personal: 674 Falls Place,   Reynoldsburg, OH 43068-1614
  406. Xref: bloom-picayune.mit.edu comp.lang.tcl:2076 news.answers:4540
  407. Newsgroups: comp.lang.tcl,news.answers
  408. Path: bloom-picayune.mit.edu!enterpoop.mit.edu!spool.mu.edu!caen!malgudi.oar.net!chemabs!lvirden
  409. From: lvirden@cas.org (Larry W. Virden)
  410. Subject: comp.lang.tcl Frequently Asked Questions (3/3)
  411.      (Last updated: November 8, 1992)
  412. Message-ID: <tcl.p3_724079551@cas.org>
  413. Followup-To: comp.lang.tcl
  414. Summary: A regular posting of the comp.lang.tcl Frequently Asked Questions
  415.     (FAQ) and their answers.  This is the third of three parts.
  416. Originator: lwv26@lwv26aws
  417. Keywords: tcl, expect, extended tcl, wish, tk
  418. Sender: lvirden@cas.org
  419. Supersedes: <tcl.p3_721227419@cas.org>
  420. Reply-To: lvirden@cas.org (Larry W. Virden)
  421. Organization: Chemical Abstracts Service
  422. References: <tcl.p2_724079551@cas.org>
  423. Date: Fri, 11 Dec 1992 13:13:52 GMT
  424. Approved: news-answers-request@MIT.Edu
  425. Expires: Sun, 24 Jan 1993 13:12:31 GMT
  426. Lines: 786
  427.  
  428. Archive-name: tcl-faq/part3
  429. Version: 2.6
  430. Last-modified: November 8, 1992
  431.  
  432. Index of questions:
  433.  
  434. 9. Where can I get these packages?
  435.     a. Retrieving Tcl and Tk
  436.     b. Accessing the Tcl/Tk User Contributions Archive
  437.     c. Expect available via e-mail.
  438.     d. tcl-mode.el
  439.  
  440. 10. What are some examples of applications using Tcl and/or Tk?
  441.     o Alpha
  442.     o arTCLs
  443.     o BOS
  444.     o browse.tcl
  445.     o BYO
  446.     o calc.tk
  447.     o coloredit
  448.     o dostcl
  449.     o Expect
  450.     o expecTerm
  451.     o Extended Tcl
  452.     o fn and ForumNet
  453.     o hp-tcl-cdplay
  454.     o js tools
  455.     o Libsearch
  456.     o MacOS Tcl
  457.     o Modules
  458.     o MS-DOS Tcl
  459.     o Mx
  460.     o Point
  461.     o Picasso
  462.     o reversi
  463.     o Roger's Interface Language (RIL)
  464.     o smaillog.tcl
  465.     o ServiceMail(TM) Toolkit
  466.     o Tcl
  467.     o tclbot
  468.     o tcltt
  469.     o tickle
  470.     o Tk
  471.     o tk WWW interface
  472.     o tupact.tcl
  473.     o Tx
  474.     o unix.tk
  475.     o wafe
  476.     o workman
  477.     o Xdig
  478.     o xf
  479.  
  480. 11. Since Tcl/Tk appear to be extensible, are there any common extensions?
  481.     o Calc_Object
  482.     o deck.tk
  483.     o Drag and Drop
  484.     o SunOS dld package
  485.     o graph
  486.     o lisp2wish
  487.     o Mxedit
  488.     o parseargs.tcl
  489.     o Photo widget
  490.     o Pixmap modifications
  491.     o Postgres extensions
  492.     o showproc.tcl
  493.     o SIPP extensions
  494.     o sybtcl
  495.     o tclprof
  496.     o tclRawTCP
  497.     o tclsql
  498.     o tclsockets
  499.     o tclTCP
  500.     o tclvogle
  501.     o tclcompare
  502.     o tclConnect
  503.     o tcl_curses
  504.     o tcl_debugger
  505.     o tcl_snmp
  506.     o tcl_streams
  507.     o tclX dynamic library patches
  508.     o tclX / Tk merge
  509.     o tcpConnect
  510.     o tk Bell and Cutbuffer patches
  511.     o Tk Emacs
  512.     o tkFScale
  513.     o tk-mod.shar
  514.     o tkText (Tk 1.3 compatible)
  515.     o tkText (Tk 2.0 compatible)
  516.     o wmstuff
  517.     o Xpm support
  518.  
  519. 12. Are there any commercial packages which use Tcl/Tk?
  520.  
  521. End of FAQ Index
  522.  
  523. --------------------------------------
  524. Subject: -9- Where can I get these packages?
  525.  
  526. The "home site" for Tcl on the Internet is sprite.berkeley.edu.
  527. Sprite is an experimental research machine whose IP servers
  528. occasionally flake out.  If you find that sprite is refusing
  529. connections, send mail to "root@sprite.berkeley.edu", wait a few
  530. hours, and try again.
  531.  
  532. Tcl and Extended Tcl were posted to comp.sources.misc, appearing
  533. November 14th, 1991, and can be found at most comp.sources.misc
  534. archive sites in the tcl and tclx directories.
  535.  
  536. a. Tcl    - available on sprite.berkeley.edu
  537. b. Tk    - available on sprite.berkeley.edu
  538. c. Extended Tcl - available on sprite.berkeley.edu and barkley.berkeley.edu
  539.  
  540. The IP address for barkley.berkeley.edu is 128.32.142.237 .
  541. The IP address for sprite.berkeley.edu is ??.??.??.?? .
  542.  
  543. Another site that provides a mirror of all the tcl/tk submissions - to both
  544. sprite and barkley - is sunsite.unc.edu.  Check in their /pub/languages/tcl
  545. directory.
  546.  
  547. In Europe, use ftp.funet.fi:/pub/languages/tcl.  It should mirror both
  548. sprite and barkley once a week.
  549.  
  550. From: ouster@sprite.Berkeley.EDU (John Ousterhout)
  551. Newsgroups: comp.lang.tcl
  552. Subject: Obtaining Tcl/Tk sources
  553.  
  554. For people new to the Tcl/Tk community, here is information on how
  555. to obtain Tcl and Tk sources.  The information below describes what
  556. I distribute; other information is available from other machines
  557. also, such as barkley.berkeley.edu .
  558.  
  559. --------------------------------------
  560. Subject: -9a- Retrieving Tcl and Tk
  561.  
  562. The sources and documentation for the Tcl command
  563. language library, for the Tk toolkit, and for a few Tcl-based
  564. applications, are in the public FTP area on sprite.berkeley.edu.
  565. All of these files are in the "tcl" subdirectory of the FTP area.
  566. Here is a catalog of what's available.  Most of the files are
  567. compressed tar files ("xxx.tar.Z").  There is some overlap
  568. between the contents of the various packages.
  569.  
  570. tk2.3.tar.Z -        This is the latest release of the Tk toolkit, released
  571.             in August 1992.  It includes a complete copy of the
  572.             Tcl 6.4 release (the version of Tcl with which it is
  573.             compatible) plus a simple windowing shell called
  574.             "wish".  If you retrieve this file you don't need to
  575.             retrieve Tcl separately.
  576.  
  577. tk2.3.patch.Z -        A patch file to upgrade from the 2.2 release of Tk
  578.             to 2.3.  Invoke patch in the top-level Tk directory
  579.             with the "-p" switch and an uncompressed version of
  580.             this file, e.g. "patch -p < tk2.3.patch".
  581.  
  582. tcl6.4.tar.Z -        This is the newest release of the Tcl library.
  583.             It became available in August 1992.  This package
  584.             includes only the Tcl library and its documentation,
  585.             plus a simple main program for testing.
  586.  
  587. tcl6.4.patch.Z -    A patch file to upgrade from the 6.3 release of Tcl
  588.             to 6.4.  Invoke patch in the top-level Tcl directory
  589.             with the "-p" switch and an uncompressed version of
  590.             this file, e.g. "patch -p < tcl6.4.patch".
  591.  
  592. tclX6.4c-p1.tar.Z -    Extended Tcl (or NeoSoft Tcl), created by Mark
  593.             Diekhans and Karl Lehenbauer, which adds a number
  594.             of useful facilities to the base Tcl release.
  595.             Among the things in Extended Tcl are a Tcl shell,
  596.             many new commands for things like UNIX kernel
  597.             call access and math library routines, and an
  598.             on-line help facility.  This file is based on Tcl
  599.             6.4 and also works with Tk 2.3.
  600.  
  601. tclX6.4c.patch1.Z -    Patches to update tclX6.4c.
  602.  
  603. mx.tar.Z -        Sources and documentation for a mouse-based text
  604.             editor (mx) and terminal emulator (tx) based on
  605.             Tcl.  This is a very old release:  it uses an old
  606.             version of Tcl (which is included) and doesn't
  607.             even use Tk;  it uses an ancient toolkit called
  608.             "Sx".  These tools will eventually be replaced
  609.             with new tools based on Tk and the newest Tcl.
  610.  
  611. mx-2.5.tar.Z -         Newer version of mx (see above) that uses the
  612.             standard X selection mechanism rather than the
  613.             homegrown mechanism used by previous versions.
  614.             Version 2.5 is not backwards compatible with
  615.             previous versions (you can't cut and paste between
  616.             the two). Still uses sx and an old version of
  617.             Tcl (both of which are included).
  618.  
  619. mx-2.5.patch.Z -    Patch file for converting mx 2.4 sources into 2.5.
  620.             Invoke patch in the top-level mx directory
  621.             with the "-p1" switch and an uncompressed version of
  622.             this file, e.g. "patch -p1 < mx-2.5.patch".
  623.  
  624. book.p1.ps.Z        Compressed Postscript for a draft of the first part
  625.             of an upcoming book on Tcl and Tk to be published in
  626.             1993 by Addison-Wesley.  This part of the book
  627.             describes the Tcl language and how to write scripts
  628.             in it.  About 130 pages in length.
  629.  
  630. tclUsenix90.ps -    Postscript for a paper on Tcl that appeared in the
  631.             Winter 1990 USENIX Conference.  This paper is also
  632.             included in the Tcl and Tk distributions.
  633.  
  634. tkUsenix91.ps -        Postscript for a paper on Tk that appeared in the
  635.             Winter 1991 USENIX Conference.  This paper is also
  636.             included in the Tk distribution.
  637.  
  638. tkF10.ps -        Postscript for Figure 10 of the Tk paper.
  639.  
  640. talk1.ps -        Postscript for viewgraphs from first of five talks
  641.             in the Tcl tutorial at the 1992 X Conference (the
  642.             same talk was also given at the 1992 USENIX Winter
  643.             Conference).  This talk gives an overview of Tcl
  644.             and Tk.
  645.  
  646. talk2.ps -        Postscript for viewgraphs from second of five talks
  647.             in the Tcl tutorial at the 1992 X Conference.  This
  648.             talk describes how to write scripts in the Tcl
  649.             language.
  650.  
  651. talk3.ps -        Postscript for viewgraphs from third of five talks
  652.             in the Tcl tutorial at the 1992 X Conference.  This
  653.             talk describes how to program the Tk toolkit using
  654.             Tcl scripts.
  655.  
  656. talk4.ps -        Postscript for viewgraphs from fourth of five talks
  657.             in the Tcl tutorial at the 1992 X Conference.  This
  658.             talk describes how to write new Tcl-based applications
  659.             in C.
  660.  
  661. talk5.ps -        Postscript for viewgraphs from last of five talks
  662.             in the Tcl tutorial at the 1992 X Conference.  This
  663.             talk describes how to write implement widgets in C
  664.             using the Tk library.  This talk uses a simple
  665.             "square" widget as an example;  the code for the
  666.             widget is in tkSquare.c.
  667.  
  668. tkSquare.c -        Sample code for use in conjunction with talk5.ps.
  669.  
  670. In addition, there may be older releases of some or all of the above
  671. files;  look for files with earlier release numbers.
  672.  
  673.  
  674. To retrieve any or all of these packages, use anonymous FTP to
  675. sprite.berkeley.edu (Internet address 128.32.150.27).  Use user
  676. "anonymous"; when asked for a password, type your login name.  Then
  677. retrieve the relevant file(s) with the commands like the following:
  678.         type image (try "type binary" if this command is rejected)
  679.         cd tcl
  680.         get tcl6.4.tar.Z
  681.         get tk2.3.tar.Z
  682.  
  683. Be sure to retrieve files in image mode (type "type image" to FTP)
  684. in order to make sure that you don't lose bits.
  685.  
  686. Any file with a .Z extension is a compressed file, which means you must
  687. use the "uncompress" program to get back a normal file.  For example, for
  688. the file tk2.3.tar.Z, you should type
  689.  
  690.     uncompress tk2.3.tar.Z
  691.  
  692. once you've retrieved the file.  This will produce a file named "tk2.3.tar".
  693. Then you will need to use tar to extract the members.  Typically one
  694. would use a command such as:
  695.  
  696.     tar xv tk2.3.tar
  697.  
  698. to extract the pieces.
  699.  
  700. Each of the releases has a README file in the top-level directory that
  701. describes how to compile the release, where to find documentation, etc.
  702.  
  703. Questions or problems about any of these distributions should be directed
  704. to John Ousterhout (ouster@cs.berkeley.edu).
  705.  
  706. If you don't have access to Sprite, you can also retrieve some or
  707. all of the above files from other FTP repositories.  Here is a
  708. sampler of machines that store some or all of the Tcl/Tk information,
  709. plus the directories in which to check:
  710.  
  711. ftp.uu.net:        languages/tcl/*
  712. export.lcs.mit.edu:    contrib/tk*
  713. barkley.berkeley.edu:    tcl/*
  714.  
  715. --------------------------------------
  716. Subject: -9b- Accessing the Tcl/Tk User Contributions Archive
  717.  
  718. Contributions to the Tcl/Tk Contrib Archive are most welcome --
  719. please upload them to:
  720.  
  721.     barkley.berkeley.edu:/incoming    [128.32.142.237]
  722.  
  723. send the archive maintainer <tcl-archive@barkley.berkeley.edu> a note stating
  724. the names of the files you uploaded and a brief description of the whole
  725. thing.
  726.  
  727. Barkley is the central file server for a moderate-size cluster, so
  728. please try to refrain from FTPing stuff between 9am and 5pm PST (GMT
  729. -0800).  No mail-archive service is planned as yet -- users without
  730. FTP capability should use one of the following mail-based FTP services
  731. (send mail to the appropriate address with "help" in the body):
  732.  
  733. WARNING!  The archive maintainer will NOT be automatically archiving anything
  734. posted to comp.lang.tcl or previously to the mailing list.  So if you want
  735. your nifty porting instructions for getting Tcl up on your Seiko wrist watch
  736. or your pen computer to be saved for others benefit, be sure to ftp them into
  737. the archive.
  738.  
  739. All contributions should be placed in barkley's ~ftp/incoming
  740. subdirectory.  Please send tcl-archive@barkley.berkeley.edu a short
  741. mail message stating the filename(s) of your contribution and a brief
  742. description (for the Index).  If you've posted some code to
  743. comp.lang.tcl or the Tcl mailing list, and you want it to be archived
  744. at this site, please deposit it in ~ftp/incoming or mail it in a
  745. suitable form (preferably uuencoded compressed tar file, but a shar
  746. file's OK) to tcl-archive@barkley.berkeley.edu.
  747.  
  748. Note: I have noticed that some authors prefer to use plain names rather than
  749. version level type names.  This means that you should a) make note of when
  750. you get a package, and b) check the archive occasionally to see if a newer
  751. version of the package has appeared.
  752.  
  753. -------------------------------
  754. Subject: -9c- Expect available via e-mail.
  755.  
  756. Besides being available via ftp, expect can also be received by email
  757. by sending the message "send pub/expect/expect.shar.Z" to
  758. library@cme.nist.gov .
  759.  
  760. -------------------------------
  761. Subject: -9d- tcl-mode.el
  762.  
  763. "Sean Levy" <snl+@cs.cmu.edu> has hacked a version of Emacs's C mode into
  764. a tcl-mode.el.  He mentions that you must use semi-colons at the end
  765. of each statement to get indentation to work right, but he found that
  766. easier than doing without.
  767.  
  768. The code is on sambar.ndim.edrc.cmu.edu (128.2.214.236) under
  769. /afs/cs/user/snl/public/tcl-mode.el.Z (don't forget binary mode) as well
  770. as barkley.berkeley.edu.
  771.  
  772. "Julian Anderson" <jules@kauri.vuw.ac.nz> was also working on an Emacs Tcl
  773. minor mode to fundamental.
  774.  
  775. "Chris Lindblad" <cjl@lcs.mit.edu> has contributed tcl.el, a Tcl mode for
  776. GNU emacs, to barkley.berkeley.edu.
  777.  
  778. ------------------------------
  779. Subject: -10- What are some examples of applications using Tcl and Tk?
  780.  
  781. What: Alpha (Alpha 5.0)
  782. Where: cs.rice.edu
  783. Description: Macintosh System 7.0 shareware ($25) Tcl programmable editor.
  784. Contact: pete@cs.rice.edu
  785.  
  786. What: arTCLs (artcls.tar.Z)
  787. Where: barkley.berkeley.edu
  788. Description: a Wish-based USENET news reader
  789. Contact: mh@awds.imsd.contel.com (Mike Hoegeman)
  790.  
  791. What: BOS (bos-1.31.tar.Z)
  792. Where: barkley.berkeley.edu,monch.edrc.cmu.edu
  793. Description: The Basic Object System; SELF-like objects implemented in TCL.
  794.     This is also an extension to Tcl.
  795. Contact:  snl+bos-requests@cmu.edu (Admin. requests for BOS mailing list)
  796.     snl+box@cmu.edu (BOS mailing list)
  797.  
  798. What: browse.tcl
  799. Where: alt.sources
  800. Description: Directory browser w/Tcl
  801. Contact: peter@taronga.com (Peter da Silva)
  802.  
  803. What: BYO (byo_tk2.1_v0.7.tar.Z, byo_v0.7_patch1)
  804. Where: barkley.berkeley.edu
  805. Description: A graphical User Interface Builder for Wish
  806. Contact: byo@comp.vuw.ac.nz (BYO Development Team)
  807.  
  808. What: calc.tk
  809. Where: barkley.berkeley.edu
  810. Description: a simple calculator.
  811. Contact: david@twg.com (David Herron)
  812.  
  813. What: coloredit (coloredit.tk)
  814. Where: barkley.berkeley.edu
  815. Description: Tk script to edit colors
  816. Contact: "Sam Shen" <sls@aero.org>
  817.  
  818. What: dostcl (dostcl60.tar.Z/dostcl.zoo)
  819. Where: barkley.berkeley.edu
  820. Description: Experimental MS-DOS Tcl 6.0a port
  821. Contact: "Karl Lehenbauer" <karl@NeoSoft.com>
  822.  
  823. What: Expect
  824. Where: ftp.cme.nist.gov:/pub/expect/expect.shar.Z
  825. Description: a scripting language to talk to interactive programs like ftp,
  826.     telnet, fsck, and others that cannot be automated from a shell script
  827. Contact: libes@cme.nist.gov (Don Libes)
  828.  
  829. What: expecTerm (expecTerm1.0beta.tar.Z)
  830. Where: ceylon.gte.com:pub/expecterm/expecTerm1.0beta.tar.Z,barkley.berkeley.edu
  831. Description: expect with terminal emulation
  832. Contact: matheus@gte.com (Christopher J. Matheus) and
  833.     weissman@get.com (Mark D. Weissman)
  834.  
  835. What: Extended Tcl (tclX6.4c.tar.Z)
  836. Where: barkley.berkeley.edu, sprite.berkeley.edu
  837. Description: an essential package of extensions for Tcl, compatible with
  838.     Tcl 6.4 and Tk 2.3.
  839. Contacts: markd@grizzly.com (Mark Diekhans) and
  840.     karl@neosoft.com (Karl Lehenbauer)
  841.